package com.lhx.product.controller;

import com.github.pagehelper.PageHelper;
import com.lhx.common.core.domain.R;
import com.lhx.product.domain.dto.ProductAttributeCategoryDTO;
import com.lhx.product.result.PageResult;
import com.lhx.product.domain.vo.ProductAttributeCategoryVO;

import com.lhx.product.service.ProductAttributeCategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


import java.util.List;

/**
 * @Author：李洪祥
 * @Package：com.lhx.product.controller
 * @Project：lhx-RuoYi
 * @name：ProductAttributeCategoryController
 * @Date：2024/5/24 下午4:50
 */
@RestController
@RequestMapping("attributeCategory")
@Api(tags = "商品属性分类管理模块")
public class ProductAttributeCategoryController {

    @Autowired
    private ProductAttributeCategoryService productAttributeCategoryService;

    /**
     * 分页查询商品分类列表
     * @param productAttributeCategoryDTO
     * @return
     */
    @ApiOperation(value = "分页查询商品分类列表")
    @PostMapping("/findList")
    public R<PageResult<ProductAttributeCategoryVO>> findList(@RequestBody ProductAttributeCategoryDTO productAttributeCategoryDTO){
        //查询所有
        List<ProductAttributeCategoryVO> list=productAttributeCategoryService.findList();
        //分页
        PageHelper.startPage(productAttributeCategoryDTO.getPageNum(),productAttributeCategoryDTO.getPageSize());
        //返回
        return R.ok(PageResult.toPageResult(list.size(),list));
    }
    @ApiOperation("分页获取所有商品属性分类")
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
    public R<PageResult<ProductAttributeCategoryVO>> getList(@RequestParam(defaultValue = "5") Integer pageSize, @RequestParam(defaultValue = "1") Integer pageNum) {
        List<ProductAttributeCategoryVO> productAttributeCategoryList = productAttributeCategoryService.getList(pageSize, pageNum);
        PageResult<ProductAttributeCategoryVO> RageResult = PageResult.toPageResult(productAttributeCategoryList.size(), productAttributeCategoryList);
        return R.ok(RageResult);
    }
    /**
     * 添加商品属性分类
     * @param productAttributeCategoryDTO
     * @return
     */
    @PostMapping("/add")
    @ApiOperation(value = "添加商品属性分类")
    public R add(@RequestBody ProductAttributeCategoryDTO productAttributeCategoryDTO){
        productAttributeCategoryService.add(productAttributeCategoryDTO);
        return R.ok(productAttributeCategoryDTO);
    }

    /**
     * 修改商品属性分类
     * @param productAttributeCategoryDTO
     * @return
     */
    @ApiModelProperty(value = "修改商品属性分类")
    @PostMapping("/update")
    public R update(@RequestBody ProductAttributeCategoryDTO productAttributeCategoryDTO){
        productAttributeCategoryService.update(productAttributeCategoryDTO);
        return R.ok(productAttributeCategoryDTO);
    }

    /**
     * 删除商品属性分类
     * @param ids
     * @return
     */

    @ApiModelProperty(value = "删除商品属性分类")
    @PostMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        productAttributeCategoryService.delete(ids);
        return R.ok(ids);
    }









}
